home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Genie / Projects / AEA / Source / Includes / AEADesc.hh < prev    next >
Encoding:
Text File  |  2000-06-24  |  1.2 KB  |  61 lines

  1. /*    ==========
  2.  *    AEADesc.hh
  3.  *    ==========
  4.  *    
  5.  *    Implemented by AEADesc.cc
  6.  */
  7.  
  8. #pragma once
  9.  
  10. #include "AEARegistry.h"
  11.  
  12. class AEADescX {
  13.     friend class AEADesc;
  14. private:
  15.     AEADescX();
  16.     AEADescX(AEDesc inAEDesc);
  17.     virtual ~AEADescX();
  18.     
  19.     virtual void Retain();
  20.     virtual void Release();
  21.     
  22. private:
  23.     long refCount;
  24.     bool owned;
  25.     
  26. protected:
  27.     AEDesc mAEDesc;
  28. };
  29.  
  30. class AEADesc {
  31.     friend class AEADescList;
  32.     friend class AEADescAppleEvent;
  33. public:
  34.     AEADesc();
  35.     AEADesc(AEADesc &inDesc);  // copy constructor
  36.     AEADesc(AEDesc inAEDesc);
  37.     AEADesc(DescType inTypeCode, const void *inDataPtr, Size inDataSize);
  38.     virtual ~AEADesc();
  39.     
  40.     virtual AEDesc &Ref();
  41.     virtual const AEDesc &Ref() const;
  42.     
  43.     virtual void Reset();
  44.     
  45.     virtual DescType DescriptorType() const;
  46.     
  47.     virtual Boolean Equals(const AEDesc &inAEDesc) const;
  48.     
  49.     virtual void Create(DescType inTypeCode, const void *inDataPtr, Size inDataSize);
  50.     virtual const AEDesc &operator=(const AEDesc &inAEDesc);
  51.     virtual void Duplicate(const AEDesc &inAEDesc);
  52.     virtual void Dispose();
  53.     virtual void Get(DescType &outLongInt) const;
  54.     virtual void Get(long &outLongInt) const;
  55.     virtual void Get(Str255 &outString) const;
  56.     
  57. protected:
  58.     AEADescX &mX;
  59.     
  60. };
  61.